단일 퍼블릭 서브넷에 속한 EC2 인스턴스가 외부 인터넷 구간으로 통신 되는 과정을 실습
실습 단계
퍼블릭 서브넷 VPC 생성
- VPC 생성
- 퍼블릭 서브넷 생성
- 인터넷 게이트웨이 생성 및 VPC 연결
- 퍼블릭 라우팅 테이블 생성 및 서브넷 연결
- 퍼블릭 라우팅 테이블 경로 추가
검증
- EC2 인스턴스 생성
- EC2 인스턴스 접근 후 통신 확인
VPC 생성
VPC이름, CIRD 대역 설정
- 경로: 서비스 - VPC - 가상 프라이빗 클라우드 - VPC 생성 클릭
- VPC 생성시 가상 라우터가 자동으로 생성
- 기본 라우팅 테이블도 보유하고 있다.

퍼블릭 서브넷 생성

인터넷 게이트웨이 생성 및 VPC 연결
외부 인터넷 구간과 통신을 하기 위한 인터넷 게이트웨이 생성 후 VPC와 연결
- 경로: 서비스 - VPC - 가상 프라이빗 클라우드 - 인터넷 게이트웨이 생성 클릭


- 외부 통신을 위한 인터넷 게이트웨이 연결하였지만, 인터넷 구간으로 향하는 라우팅 경로를 설정해 주어야함

퍼블릭 라우팅 테이블 생성 및 서브넷 연결
- 경로: 서비스 - VPC - 가상 프라이빗 클라우드 - 라우팅 테이블
- 라우팅 테이블 이름 설정 및 생성한 VPC 선택

- 경로: 해당 라우팅 테이블 선택 - 세부사항 - 세브넷 연결 - 서브넷 연결 편집 클릭
- 이전에 만들었던 서브넷이랑 라우팅 테이블을 연결
- 이제 퍼블릭 서브넷은 기본 라우팅 테이블이 아닌, 새로 생성한 퍼블릭 라우팅 테이블을 사용

퍼블릭 라우팅 테이블 경로 추가
- 경로: 서비스 - VPC - 가상 프라이빗 클라우드 - 라우팅 테이블 - 세부정보 - 라우팅 편집 클릭
- 인터넷 게이트웨이와 모든 경로 허용 추가

검증

목적지 타깃을 google.com으로 하여 외부 인터넷으로 정상적인 통신이 가능한 것을 확인
프라이빗 서브넷 VPC 구성
프라이빗 서브넷을 생성하여 외부 인터넷 구간과 통신 되는 과정을 실습
실습단계
프라이빗 서브넷 추가
- 프라이빗 서브넷 생성
- NAT 게이트웨이 생성
- 프라이빗 라우팅 테이블 생성 및 서브넷 연결
- 프라이빗 라우팅 테이블 경로 추가 =
검증
- EC2 인스턴스 생성
- EC2 인스턴스 접근 후 통신 확인
- 퍼블릭 서브넷과 프라이빗 서브넷의 통신 흐름
프라이빗 서브넷 추가
프라이빗 서브넷 생성

NAT 게이트웨이 생성
- 경로: 서비스 - VPC - 가상 프라이빗 클라우드 - NAT 게이트웨이 생성 클릭
- NAT 게이트웨이는 인터넷 게이트웨이와 마찮가지로 외부와 통신을 할 때 사용하지만, 프라이빗 서브넷에서 외부로 통신하기 위해 사용한다.
- NAT게이트웨이의 역할은 프라이빗 네트워크를 외부로 보내기 위해 사용되지만, 서브넷의 배치는 퍼블릭 서브넷에 배치되어야 한다.

프라이빗 라우팅 테이블 생성 및 서브넷 연결
- 기존에 생성한 VPC에 프라이빗 라우팅 테이블을 생성
- 경로: 서비스 - VPC - 가상 프라이빗 클라우드 - 라우팅 테이블 생성 클릭


프라이빗 라우팅 테이블 경로 추가
- 현재 프라이빗 라우팅 테이블에는 외부 인터넷 구간 통신을 위한 라우팅 경로가 없음
- 모든 네트워크가 NAT 게이트웨이로 향하는 경로 추가
- 경로: 서비스 - 가상 프라이빗 클라우드 - 라우팅 테이블 - 세부정보 - 라우팅 편집 클릭

검증
- 프라이빗 서브넷을 가진 EC2 새로 생성
- 네트워크, 서브넷, 설정
- 그외 설정 기본 값

#!/bin/bash
(
echo "qwe123"
echo "qwe123"
) | passwd --stdin root
sed -i "s/^PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config
sed -i "s/^#PermitRootLogin yes/PermitRootLogin yes/g" /etc/ssh/sshd_config
service sshd restart
-
프라이빗 EC2 생성 및 세부정보
- 퍼블릭 IP 주소가 없다.
- NAT 게이트웨이는 네트워크가 내부에서 외부로 나갈 순 있지만, 외부에서 내부로 들어오는 것은 불가능
- 따라서 이전에 만들었던 퍼블릭 EC2 인스턴스에 최초 진입 후, 로컬통신을 통해 프라이빗 EC2로 접근

-
프라이빗 EC2에 접근한 모습
- 처음 퍼블릭 EC2 접근 후, SSH 프로토콜을 통해 프라이빗 EC2에 접속한 모습


중간에 NAT 게이트웨이를 설정할 때, 서브넷 설정을 프라이빗으로 설정해두어 외부 네트워크와 통신이 안됬었다.
NAT 게이트웨이를 지웠다가 다시 제대로 퍼블릭 서브넷으로 설정하니 통신이 된 모습
이후 모든 자원 삭제
- EC2 인스턴스 종료
- NAT 게이트웨이 삭제
- 탄력적 IP삭제
- VPC 삭제
Reference
따라하며 배우는 AWS 네트워크 입문